// JavaScript Document

import store from 'react-native-simple-store'
export default class StorageTools{

  /**
   * 保存一个值
   * @param key
   * @param value
   */
  static save(key, value) {
  	store.save(key, value)
	.then(
		()=>{
			console.log('save success');
		}
	).catch(
		(error)=>{
			console.log('save error:'+error.message);
		}
	)
  }

  static saveMultiData(key,array){
	  store.save("multi",array)
	  .then(
		()=>{
			console.log('>>save multi success');
		}
	   ).catch(
		(errors)=>{//操作失败或者对异常的处理
			console.log('>>save  multi error,errors.length:'+errors.length);
			if(errors.length>0){//保存操作有异常
				console.log('>>lst error message:'+errors[0].message);

			}else{//异常不是数组，有可能是成功操作的处理函数抛出的异常
				//处理异常
			}
	    }
	   );
  }

	/**
	* 获取一个值
	* @param key
	* @param defaultValue
	*/
	static get(key,defaultValue){
		return new Promise((resolve, reject)=>{
			store.get(key).then((result)=>{
				//读取成功的操作
				if(result==null){
					//存储中没有指定键对应的值，处理这种情况
					console.log('--result is null--');
					resolve(defaultValue);
				}else if(result!=null){
					console.log("-json-success-result="+result);//读取成功的操作
					resolve(result);
				}
			}).catch(
				(errors)=>{
					reject(errors);
					console.log('get error:'+errors.message);
				}
			);
		});
	}

	static remove(key,callback){
		store.delete(key).then(
			()=>{
				callback && callback()
				//删除成功后的操作
				console.log("delete success");
			}
		).catch(
			(error)=>{
				//处理异常操作
				console.log("error:"+error.message);
			}
		);
	}
}
